In the early days of telecommunications, users had few service options available, under what has now become known as POTS (plain old telephone service), often being restricted to choosing the number of incoming lines, private or "party line" service and, for larger users, selection of a private branch exchange (PBX). In contrast, modern users can select among a variety of services, each having associated advantages, disadvantages and costs, including (in addition to POTS) ISDN (Integrated Services Digital Network) service, T1 service, cellular service and the like. Services such as ISDN and T1 which provide a potential for large-bandwidth telecommunications have become particularly important as telecommunications use has expanded beyond voice traffic to include telefacsimile (fax), digital (or audio-modulated digital) signals (used, e.g., for network or Internet communications), and the like. Communication of some types of information, such as video information, digital file transfers, still images, streaming audio and the like, create heavy (if often short-lived) bandwidth demands.
Nevertheless, high-bandwidth services such as ISDN have not widely supplanted older, less-suitable telecommunications options, primarily because of the costs associated with high-bandwidth services (which may include not only installation fees, but connection fees and tariffs). Part of the cost associated with ISDN and other high-bandwidth options arises from the fact that, in many such systems, a large-bandwidth channel is allocated to each subscriber who must therefore bear the cost of the entire bandwidth for extended periods even though the user may only be able to benefit from, or use, the large bandwidth intermittently and for relatively short periods (e.g. during times when relatively large files are being transferred). Accordingly, systems have been proposed which bear a rough (and imperfect) analogy to a "party line" in which a given bandwidth is allocated for use by multiple users, but at different times, as their needs dictate.
One proposed system is referred to as (AO/DI) (Always On/Dynamic ISDN). In an AO/DI system, the "D" channel is continuously available (Always On). The relatively low bandwidth D channel serves as the "home" channel for a user and one or more B channels are utilized for relatively large transmissions and are closed as they are no longer needed. Such a system permits costs to be shared among a plurality of users, and cost to an individual user is reduced in a number of fashions. A given user need not bear the cost of a large-bandwidth channel during times it is not being used or is not needed by that end-user. Because ISDN lines are shared, a reduced number of lines is necessary to supply a given group of users, leading to reduced line charges and usage of equipment.
Certain protocols have been proposed in connection with an AO/DI system, including a multi-link point-to-point protocol (MLPPP) which allows aggregation of multiple channels, and a bandwidth allocation control protocol (BACP) which runs "on top" of MLPPP and provides a vendor-independent standard for initiation and management of opening and closing channels. Descriptions of the proposed AO/DI, MLPPP and BACP can found, e.g., at "Always On/Dynamic ISDN," RFC-1990 and RFC 2125 respectively, available from the Vendors' ISDN Association (VIA) (a non-profit California corporation located at Bishop Ranch 2, 2694 Bishop Drive, Suite 105, San Ramon, Calif. 94583) or on the Internet at http://ftp.via-isdn.org/, and incorporated herein by reference. These three systems, however, while they provide the capability of switching or allocating bandwidth, do not dictate a system for determining or deciding when to make such allocations or deallocations, much less suggesting a decision-making system which would be effective and efficient.
One possible approach is a queue-depth system which allocates a large-bandwidth channel when the number of communication packets that have accumulated in a processing queue has reached a predetermined threshold. Such a system, in essence, is based on a consideration of past traffic volume only. If traffic which has already occurred has reached a predetermined volume in a given period of time, a wider-bandwidth channel is allocated. Although such a system will function at a certain level, it will not necessarily achieve the goals of lowering costs and providing for ease of use. Indeed, there are situations in which a queue-depth system would increase costs over those that would be incurred if no bandwidth switching or allocation took place. For example, if a threshold is reached just before the end of, e.g., a file transfer, a queue-depth system will nevertheless allocate additional bandwidth (and, typically, cause costs to be incurred for the end user) even though the end user will receive little or no benefit from the additional bandwidth, (since the file transfer will be complete before or shortly after such additional bandwidth is allocated). Because such thresholds would be predetermined and fixed, these problems cannot be solved by merely selecting a different threshold value. For example, although raising the threshold might have avoided unnecessary charges from a futile B channel allocation in the example above, transfers with other characteristics (e.g., frequent large but short data transfers) would receive no benefit from the system with a high threshold.
A queue-depth system, thus requires, for efficient use, that the threshold should be established so as to accommodate the particular mix of traffic for a given end-user. However, a typical end-user will have neither the skills nor the time to achieve an optimal or even useful threshold value. Thus, the queue-depth system, in addition to being unable to achieve cost savings goals in many situations, also imposes relatively heavy administrative costs in implementing the system. Furthermore, a queue-depth system is inflexible and cannot adjust to changes in the characteristics of the data traffic, (e.g. as traffic changes throughout the day or for a longer period of time.) For effectiveness, any adjustments to the threshold in a queue-depth system would require a significant expenditure of time by a relatively highly-skilled administrator. Additionally, a queue-depth system can not allocate bandwidth early in a given data stream (e.g. can not allocate bandwidth after only the first few--such as 1 to 4--packets) but must wait at least until enough packets have arrived to reach the predetermined queue threshold.
Accordingly, it would be useful to provide a system which can achieve bandwidth allocation so as to fulfill the goal of lowering costs for high bandwidth telecommunications without imposing burdensome time and skill requirements to set up and maintain such a system. It would also be advantageous to provide a system which can accommodate to time-varying traffic or usage patterns. It would further be useful to provide a system that is capable of deciding on bandwidth allocation early in a data stream, such as after only the first few packets have been received.
Some systems for providing wide-bandwidth access place substantial burdens on end users such as requiring end users to invest in significant additional hardware or software. Accordingly, it would be useful to provide a system which achieves cost effective and efficient provision of wide bandwidth capability for telecommunications without requiring significant installation of additional equipment or software at the end user location (client side) in order for such a system to operate.
Additionally, some systems impose significant burdens on telecommunications companies in order to implement efficient bandwidth allocation. For example, implementing a system which modifies or "resides" in a protocol stack would require a vendor to recertify the protocol stack, adding to the vendor's costs to implement such a system. Because telecommunications systems use equipment and software from a wide variety of vendors, bandwidth allocation procedures which depend on a certain level of interaction with vendor equipment or software will require different versions to operate, depending on which vendor supplies the basic routing or other telecommunications equipment and software (i.e., will be vendor-dependent) imposing costs which involve selecting the proper version required for operability and the development and implementation costs associated with providing multiple different versions of a bandwidth allocation system to operate in connection with multiple router vendor devices and software.
Accordingly, it would be useful to provide bandwidth allocation apparatus and procedures which reduce or minimize costs to telecommunications companies and developers, such as systems which reduce or avoid recertification costs and which are at least partially vendor-independent.